// js底层存储变量 变量的机器码的低3位存储数据类型信息
/**
 * 000 对象
 * 010 浮点数
 * 100 字符串
 * 110 布尔值
 * 1 整数
*/
console.log('null的typeof值',typeof null) // null的机器码为000 被判断为对象
// 一个不错的判断数据类型的方法
console.log(Object.prototype.toString.call(1))
console.log(Object.prototype.toString.call('hi'))
console.log(Object.prototype.toString.call({a: 'hi'}))
console.log(Object.prototype.toString.call([1, 2]))

// instanceof 操作符的原理  判断一个实例是否属于某种类型 也可以判断一个实例是否是其父类或者祖先类型的实例
let Person = function () {}
let xiaoming = new Person();
console.log(xiaoming instanceof Person)

 // instanceof的判断的原理是只要右边变量的prototype在左边变量的原型链上即可  这里要理清楚原型和原型链的关系



